package com.digicom.common.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.digicom.common.entity.Comment;
import org.apache.ibatis.annotations.Param;

/**
 * 评论数据访问层
 */
public interface CommentMapper extends BaseMapper<Comment> {
    /**
     * 查询文章评论列表
     *
     * @param page 分页查询条件
     * @param articleId 文章ID
     * @return 评论分页列表
     */
    Page<Comment> selectArticleComments(Page<Comment> page, @Param("articleId") Long articleId);

    /**
     * 查询待审核评论列表
     *
     * @param page 分页查询条件
     * @return 评论分页列表
     */
    Page<Comment> selectPendingComments(Page<Comment> page);

    /**
     * 修改评论审核状态
     *
     * @param commentId 评论ID
     * @param status 审核状态
     * @param reviewBy 审核人
     * @param reviewRemark 审核备注
     * @return 影响行数
     */
    int updateCommentStatus(@Param("commentId") Long commentId, @Param("status") String status, 
                          @Param("reviewBy") String reviewBy, @Param("reviewRemark") String reviewRemark);

    /**
     * 修改同步状态
     *
     * @param commentId 评论ID
     * @param syncApp 同步状态
     * @return 影响行数
     */
    int updateSyncStatus(@Param("commentId") Long commentId, @Param("syncApp") String syncApp);

    /**
     * 获取用户评论列表
     *
     * @param page 分页查询条件
     * @param userId 用户ID
     * @return 评论分页列表
     */
    Page<Comment> selectUserComments(Page<Comment> page, @Param("userId") Long userId);
    
    /**
     * 获取文章评论总数
     *
     * @param articleId 文章ID
     * @return 评论总数
     */
    Integer countArticleComments(@Param("articleId") Long articleId);
} 